home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 05 Programming / SHLRAM.SDA / DOLOAD.A < prev    next >
Text File  |  2019-04-13  |  4KB  |  285 lines

  1. ;
  2. ; SHELLRAM
  3. ;
  4. ;  ┬Y: ┴DRIAN ╨EPPER
  5. ;      ╘ORONTO, ╧NTARIO
  6. ;
  7. ;  BASED ON, BUT HEAVILY MODIFIED FROM
  8. ;  THE ╨RO-╠INE/╙PINNAKER
  9. ;    ├ ╨╧╫┼╥/╨╧╫┼╥ ├ SHELL FOR THE
  10. ;  ├OMMODORE 64 HOME COMPUTER.
  11. ;
  12. ;  ╘HE SHELL WAS MODIFIED TO REDUCE
  13. ;  THE SIZE OF THE CODE, AND ARRANGE
  14. ;  THINGS SO MEMORY PAGE 22 (HEX $16)
  15. ;  WILL BE FREE FOR USE AS A "╥┴═DISK
  16. ;  ╔NTERFACE ╨AGE", FOR USE WITH THE
  17. ;  ├OMMODORE 1764 256╦ ╥┴═ EXPANDER
  18. ;  FOR THE ├OMMODORE 64
  19. ;
  20. ;  ╘HIS (BASICALLY) ALLOWS ALL PROGRAMS
  21. ;  DESIGNED TO RUN UNDER THE SHELL TO
  22. ;  OPERATE WITH THE ╥┴═ DISK
  23. ;
  24. ;
  25. ; DOLOAD.A
  26. ;
  27. ; DOLOAD, TRYLOAD;
  28. ;   LOAD EXECUTABLE PROGRAMS FROM DRIVES
  29. ;
  30. ; ALSO GETFLNM
  31. ;      OSTDIN
  32. ;      OSTDOUT
  33. ;      OPROUT
  34. ;
  35. ;
  36. ;
  37.  .REF SYSDEV
  38.  .REF SYSDRV
  39.  .REF WRKDEV
  40.  .REF WRKDRV
  41.  .REF STDINFL
  42.  .REF STDOUFL
  43. ;
  44. ; KERNAL ROUTINES, ETC
  45. ;
  46.  .REF SETLFS
  47.  .REF SETNAM
  48.  .REF OPEN
  49.  .REF CHKOUT
  50.  .REF CLRCHN
  51.  .REF LOAD
  52. ;
  53. ;
  54. ;
  55.  .DEF GETFLNM
  56.  .DEF OSTDIN
  57.  .DEF OSTDOUT
  58.  .DEF CMDCHK
  59.  .DEF OPROUT
  60.  .DEF DOLOAD
  61.  .DEF TRYLOAD
  62. ;
  63.  .REF CURCMDN
  64.  .REF STRAC   ;; SAME AS PRFBUF, REMEMBER
  65. ;
  66.  .REF STRLOAD
  67.  .REF STRAPND
  68.  .REF STREND
  69.  .REF STREQ
  70.  .REF STRFOPN
  71.  .REF STRECHN
  72.  .REF STRBOUT
  73.  .REF CMDLBUF
  74.  .REF STROUT
  75. ;  
  76. ; GETFLNM - COPIES FROM CMDLBUF,X  
  77. ;   TO STRAC, PREPENDING <DRV>:
  78. ;
  79. ; FOR OSTDIN, OSTDOUT
  80. ;
  81. GETFLNM CLC
  82.  LDA WRKDRV
  83.  ADC #'0
  84.  STA STRAC
  85.  LDA  #':
  86.  STA STRAC+1
  87. T1070B INX
  88.  LDA CMDLBUF,X
  89.  BNE T1080F
  90.  SEC
  91.  RTS
  92. T1080F CMP #$20
  93.  BEQ T1090F
  94.  CMP #$A0
  95. T1090F BEQ T1070B
  96.  LDY #2
  97. T1100B LDA CMDLBUF,X
  98.  BEQ T1110F
  99.  CMP #$20
  100.  BEQ T1110F
  101.  CMP #$A0
  102.  BEQ T1110F
  103.  STA STRAC,Y
  104.  INY
  105.  INX
  106.  BNE T1100B
  107. T1110F LDA #0
  108.  STA STRAC,Y
  109.  DEX
  110.  STX $2A
  111.  CLC
  112.  RTS
  113. ;  
  114. ; OSTDIN - OPEN STDIN  
  115. ;  (PROCESS <FILENAME)  
  116. ;  
  117. OSTDIN LDA #$01
  118.  STA STDINFL
  119.  STY $2B
  120.  JSR GETFLNM
  121.  BCC T0980F
  122.  RTS
  123. T0980F LDA  #$01
  124.  LDX WRKDEV
  125.  LDY #$02
  126.  JSR  STRFOPN ; OPEN 1,WRKDEV,2,STRAC
  127.  BCC T0990F
  128.  RTS
  129. T0990F LDX WRKDEV
  130.  JMP CMDCHK ; AND RETURN
  131. ;  
  132. ; OSTDOUT - OPEN STDOUT  
  133. ;   (PROCESS >FILENAME)  
  134. ;
  135. SCOMS .BYTE ",S"
  136.  .BYTE 0
  137. SCOMW .BYTE ",W"
  138.  .BYTE 0
  139. OSTDOUT LDA #$01
  140.  STA STDOUFL
  141.  STY $2B
  142.  JSR GETFLNM
  143.  BCC T1000F
  144.  RTS
  145. T1000F LDX #0
  146.  JSR STREND
  147.  DEX
  148.  DEX
  149.  LDA STRAC,X
  150.  CMP #',
  151.  BEQ T1010F
  152.  LDX #<SCOMS
  153.  LDY #>SCOMS
  154.  JSR STRAPND
  155. T1010F LDX #<SCOMW
  156.  LDY #>SCOMW
  157.  JSR STRAPND
  158.  LDA #2
  159.  LDX WRKDEV
  160.  LDY #3
  161.  JSR STRFOPN  ;; OPEN 2,<WRK>,3,STRAC
  162.  BCC T1020F
  163.  RTS
  164. T1020F LDX WRKDEV
  165. ;  
  166. ; CMDCHK - GET COMMAND CHANNEL LINE  
  167. ;  INTO ECHNBUF;  
  168. ;  OUTPUT AND SET CARRY IF NON-ZERO CODE
  169. ;  ALSO RESTORE X,Y FROM $2A,$2B
  170. ;  
  171. CMDCHK JSR STRECHN
  172.  BCC T1030F
  173.  JSR STRBOUT
  174.  SEC
  175. T1030F LDX $2A
  176.  LDY $2B
  177.  RTS
  178. ;  
  179. ; OPROUT - OPEN PRINTER (DEV 4)  
  180. ;   AS STDOUT (PROCESS >>)  
  181. ;  
  182. OPROUT STX $2A
  183.  STY $2B
  184.  LDA #1
  185.  STA STDOUFL
  186.  LDA #2
  187.  LDX #4
  188.  LDY #7
  189.  JSR SETLFS
  190.  LDA #0
  191.  JSR SETNAM
  192.  JSR OPEN
  193.  BCS T1120F
  194.  LDX #2
  195.  JSR CHKOUT
  196. T1120F PHP
  197.  JSR CLRCHN
  198.  PLP
  199.  LDX $2A
  200.  LDY $2B
  201.  RTS
  202. ;
  203. ; DOLOAD - LOADS NAME REPRESENTED BY STRING AT (X,Y)
  204. ;
  205. DOLOAD STX $2A
  206.  STY $2B
  207.  JSR STRLOAD
  208.  LDX #<CURCMDN
  209.  LDY #>CURCMDN
  210.  JSR STREQ ; CMP WITH CURCMDN
  211.  BNE T0870F
  212.  CLC
  213.  RTS
  214. T0870F LDX WRKDEV
  215.  LDY WRKDRV
  216.  JSR TRYLOAD ; TRY WORK DISK!
  217.  BCC T0880F
  218.  LDX SYSDEV
  219.  LDY SYSDRV
  220.  CPX WRKDEV  ; DON'T REDO SAME DISK!
  221.  BNE T0875F
  222.  CPY WRKDRV
  223.  BEQ T0876F
  224. T0875F JSR TRYLOAD ; TRY SYSTEM DISK!
  225.  BCC T0880F
  226. T0876F LDX #<SCMDNF
  227.  LDY #>SCMDNF
  228.  JSR STROUT
  229.  SEC
  230.  RTS
  231. SCMDNF .BYTE "COMMAND NOT FOUND"
  232.  .BYTE $0D,0
  233. T0880F LDY #$13
  234. T0890B LDA ($2A),Y
  235.  STA CURCMDN,Y
  236.  DEY
  237.  BPL T0890B
  238.  CLC
  239.  RTS
  240. ;  
  241. ; TRYLOAD - ATTEMPT LOAD OF ($2A,$2B)
  242. ;  FROM DEVICE X, DRIVE Y  
  243. ;
  244. SZERO .BYTE "0:"
  245.  .BYTE 0
  246. SDOTSH .BYTE ".SH"
  247.  .BYTE 0
  248. ;
  249. TRYLOAD STX VTRYDEV
  250.  TYA
  251.  CLC
  252.  ADC #'0
  253.  STA SZERO
  254.  LDX #<SZERO
  255.  LDY #>SZERO
  256.  JSR STRLOAD
  257.  LDX $2A
  258.  LDY $2B
  259.  JSR STRAPND
  260.  LDX #<SDOTSH
  261.  LDY #>SDOTSH
  262.  JSR STRAPND
  263.  LDX #0
  264.  JSR STREND
  265.  TXA
  266.  LDX #<STRAC
  267.  LDY #>STRAC
  268.  JSR SETNAM
  269.  LDX VTRYDEV
  270.  LDA #$04
  271.  TAY
  272.  JSR SETLFS ; LOAD 4,DEV,4,NAMBUF
  273.  LDA #$00
  274.  JSR LOAD
  275.  BCC T0970F
  276.  CMP #5
  277.  BNE T0940F
  278.  RTS
  279. T0940F LDX VTRYDEV
  280.  JSR STRECHN
  281. ;JSR STRBOUT
  282.  SEC
  283. T0970F RTS
  284. VTRYDEV .BSS 1
  285.